﻿#pragma once
#ifndef WRFLAGS_H
#define WRFLAGS_H

#include "../WRBasics.h"

//表示标记值。
class WRFlags
{
private:
    WR32u m_data;

public:
    //初始化标记值。
    inline WRFlags(void)
    {
        m_data = 0;
    }
    //初始化标记值。
    inline explicit WRFlags(WR32u data)
    {
        m_data = data;
    }

    //读取指定字段的值。
    inline bool read(WR32u field) const
    {
        return ((m_data & field) != 0);
    }
    //写入指定字段的值。
    inline void write(WR32u field, bool value)
    {
        if (value)
        {
            m_data |= field;
        }
        else
        {
            m_data &= ~field;
        }
    }
};

#endif // WRFLAGS_H
